﻿#region 참조 네임스페이스

using System;

#endregion

namespace Skying.Diagnostics.Logger
{
	/// <summary>
	/// 로깅 심각도를 나열한다.
	/// </summary>
	[Flags]
	public enum LogSeverity
	{
		/// <summary>
		/// 로그를 출력하지 않도록 한다.
		/// </summary>
		Off = 0x00,

		/// <summary>
		/// 모든 심각도의 로그를 모두 출력하도록 지정한다.
		/// </summary>
		Trace = 0x01,

		/// <summary>
		/// 디버거를 통해 디버깅 시에만 출력되는 로그에 지정하는 심각도를 나타낸다.
		/// </summary>
		Debug = 0x02 | Trace,

		/// <summary>
		/// 로그를 통해 알려야 하는 정보가 있는 경우 사용한다.
		/// </summary>
		Information = 0x04 | Debug,

		/// <summary>
		/// 오류는 아니지만, 문제의 소지가 될 수 있는 내용에 대해 경고하는 단계를 뜻한다.
		/// </summary>
		Warning = 0x08 | Information,

		/// <summary>
		/// 오류가 발생한 경우 사용되며 <see cref="System.Exception"/>을 전달하여 오류 스택을 출력할 수 있다.
		/// </summary>
		Error = 0x10 | Warning,

		/// <summary>
		/// 치명적인 오류로 분류하고 싶은 오류를 출력하기 위해 사용된다.
		/// </summary>
		Fatal = 0x12 | Error,
	}
}